package cn.tedu.oop2;

/**
 * 该类用于测试代码块
 *构造代码块 --> 构造方法 --> 普通方法 --> 局部代码块
 *
 * @author ：Dsi
 * @date ：2021/11/8 14:35
 */
public class TestBlock {
    public static void main(String[] args) {
        Pig p=new Pig();
        p.eat();
        System.out.println("今天特别冷，注意保暖");
    }
}

class Pig {
    String name;
    String food;
    int age;
    public Pig(){
        System.out.println("我是无参构造1");
    }
    /**构造代码块：{}
     * 1.位置：类里方法外
     * 2.执行时机：每次创建对象时都会执行构造代码块，并且优先于构造方法执行
     * 3.作用：用于提取所有构造方法的共性功能
     */
    {
        eat();
        System.out.println("我是一个构造代码块");

    }


//    public Pig(String a){
//        System.out.println("我是含参构造2");
//    }

    public void eat() {
        {
            System.out.println("我是一个局部代码块");
        }
        System.out.println("小猪爱吃~");
        /**局部代码块：
         * 1.位置：方法里
         * 2.时机：方法被调用时执行，且按顺序执行
         * 3.作用：用于控制变量的作用范围，变量的作用范围越小越好
         */

    }
}